<?php
/**
 * 引导文件
 * @copyright   Copyright(c) 2018
 * @author      tianjie
 * @link        http://www.tinphp.com/
 */

//设置时区
date_default_timezone_set('PRC');
define('START_TIME', microtime(true));
define('START_MEM', memory_get_usage());

define('FRAMEWORK', 'tianphp');
define('VERSION', '2.1.9');
define('TJ', DIRECTORY_SEPARATOR);                                  //设置分隔符
define('SUFFIX', '.php');                                           //后缀
define("SITE_PATH", dirname($_SERVER['SCRIPT_NAME']));              //相对目录
define('APP_SITE_PATH', dirname(__FILE__, 2) . TJ);     			//系统根目录

defined('APP_PATH') or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']) . TJ);   //应用目录
define('COMMON_PATH', APP_PATH . 'common' . TJ);                                                     //应用公共模块目录
define('PUBLIC_MODEL_PATH', COMMON_PATH . 'model' . TJ);                                             //应用公共模块模型目录
define('PUBLIC_SERVICE_PATH', COMMON_PATH . 'service' . TJ);                                         //应用公共模块服务目录

define('CONFIG_PATH', APP_SITE_PATH . 'config' . TJ);           //配置目录
define('PUBLIC_PATH', APP_SITE_PATH . 'public' . TJ);           //资源目录
define('VENDOR_PATH', APP_SITE_PATH . 'vendor' . TJ);           //第三方类库目录
define('VIEW_PATH', APP_SITE_PATH . 'view' . TJ);               //视图目录
define('RUNTIME_PATH', APP_SITE_PATH . 'runtime' . TJ);         //缓存目录
define('CACHE_PATH', RUNTIME_PATH . 'cache' . TJ);              //数据缓存
define('TEMP_PATH', RUNTIME_PATH . 'views' . TJ);               //模板缓存
define('LOG_PATH', RUNTIME_PATH . 'log' . TJ);                  //日志缓存

define('APP_SYS_PATH', dirname(__FILE__) . TJ);            		//框架核心目录
define('Tian_PATH', APP_SYS_PATH . 'tian' . TJ);                //框架核心

//环境常量
define('IS_CLI', PHP_SAPI == 'cli' ? true : false);                 //是否是cli模式:true/false
define('IS_WIN', strpos(PHP_OS, 'WIN') !== false);   				//是否是win系统:true/false

if(!file_exists(VENDOR_PATH . "autoload" . SUFFIX)){
	echo"请先执行composer install";exit;
}

//载入Loader类
require Tian_PATH . 'Loader' . SUFFIX;

//注册自动加载
\tian\Loader::register();

//注册错误和异常处理机制
\tian\Error::register();

//载入系统预设置
\tian\Config::set(include APP_SYS_PATH . 'configure' . SUFFIX);

//执行应用
\tian\App::run();
